package 中等.模拟;

/**
 * 给你一个下标从 0 开始的字符串 s ，以及一个下标从 0 开始的整数数组 spaces 。
 * 数组 spaces 描述原字符串中需要添加空格的下标。每个空格都应该插入到给定索引处的字符值 之前 。
 * 例如，s = "EnjoyYourCoffee" 且 spaces = [5, 9] ，那么我们需要在 'Y' 和 'C' 之前添加空格，
 * 这两个字符分别位于下标 5 和下标 9 。因此，最终得到 "Enjoy Your Coffee" 。
 * 请你添加空格，并返回修改后的字符串。
 *
 * @ https://leetcode.cn/problems/adding-spaces-to-a-string/description/?envType=daily-question&envId=2025-03-30
 * @date 2025/03/30
 */
public class 向字符串添加空格_2109 {

    public static void main(String[] args) {

    }

    /**
     * 双指针+模拟
     */
    public String addSpaces(String s, int[] spaces) {
        StringBuilder stringBuilder = new StringBuilder();
        int idx = 0;

        for (int i = 0; i < s.length(); i++) {
            if (idx < spaces.length && spaces[idx] == i) {
                stringBuilder.append(" ");
                idx++;
            }

            stringBuilder.append(s.charAt(i));
        }

        return stringBuilder.toString();
    }

}
